Interface-Oriented Programming
نویسنده
چکیده
The predominant design of object-oriented programming languages today provides insufficient support for interface abstraction and implementation inheritance, a limitation that forces software components to be unnecessarily biased towards particular implementations of other components. This scatters implementation bias across a system and impairs its ability to evolve. In this paper we trace the origin of implementation bias to concrete instantiation dependencies, points in a program text where objects are explicitly or implicitly instantiated in terms of class name references. We then propose interface-oriented programming as a solution, a new approach to language design and software engineering that can eliminate implementation bias by strictly separating interfaces from implementations and decoupling the inheritance mechanism from the implementation binding mechanism. In interface-oriented programming, all program dependencies are expressed through abstract interfaces, and interface clients are bound with implementations using non-deterministic instantiation, a mechanism that automatically selects an implementation of an interface from among a set of alternatives. Partial and incremental implementation of abstract interfaces in terms of other assumed interfaces is allowed, providing a form of mixin-inheritance that separates interface inheritance from implementation inheritance, but with support for constructors, and without the need for explicit composition. Composition of these separately compiled, partial implementations is handled by a new form of program linking called representaton inference. The representation inference mechanism uses type constraints and method constraints to infer compatible compositions of available partial representations for an interface.
منابع مشابه
Modelsaz: An Object-Oriented Computer-Aided Modeling Environment
Modeling and simulation of processing plants are widely used in industry. Construction of a mathematical model for a plant is a time-consuming and error-prone task. In light of extensive advancements in computer science (both hardware and software), computers are becoming a necessary instrument in industrial activities. Many software tools for modeling, simulation and optimization of proces...
متن کاملGenerative Programming, Interface-Oriented Programming, and Source Transformation Systems
We propose a new interface-oriented approach to generative programming and suggest that source-to-source transformations could play a complementary role in an interfaceoriented programming system.
متن کاملModelface: an application programming interface (API) for homology modeling studies using Modeller software
An interactive application, Modelface, was presented for Modeller software based on windows platform. The application is able to run all steps of homology modeling including pdb to fasta generation, running clustal, model building and loop refinement. Other modules of modeler including energy calculation, energy minimization and the ability to make single point mutations in the PDB structures a...
متن کاملModelface: an application programming interface (API) for homology modeling studies using Modeller software
An interactive application, Modelface, was presented for Modeller software based on windows platform. The application is able to run all steps of homology modeling including pdb to fasta generation, running clustal, model building and loop refinement. Other modules of modeler including energy calculation, energy minimization and the ability to make single point mutations in the PDB structures a...
متن کاملAn Interface between Object-oriented Systems
The descriptionòbject-oriented' may apply to both programming languages and operating systems. However, creating an interface between an object-oriented programming language and an object-oriented operating system is not necessarily a straightforward task. Chrysalis++ is a C++ interface to the Chrysalis operating system for the BBN Butterry Parallel Processor. The development of Chrysalis++ hig...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004